One goal of a Content Delivery Network (CDN) is to bring the Delivery Nodes (DNs) closer to the end users in order to provide a good user experience and fewer delays in transmitting requested contents. Another consideration for providing a good user experience is that the content delivery service should be available at all time.
However, the High Availability (HA) of a CDN depends upon how quickly the failure of a delivery node is detected, to avoid directing a user request to a delivery node having problems.
For large scale traffic, DN failure detection is critical since thousands of requests per second are handled. Any delay in detecting a failure might lead to a significant number of failed requests.
Accordingly, when a delivery node is found to be down or overloaded, the delivery node is excluded and requests stop being redirected thereto. When the status of the delivery node becomes normal again, the delivery node stops being excluded and requests can be redirect to the delivery node again.
Referring to FIG. 1, a monitoring mechanism is described. In the example, four resources R1, R2, R3 and R4 are monitored. At time t=t0, a Traffic Monitor (TM) sends a request to the four resources simultaneously. The request may be an Internet Control Message Protocol (ICMP) echo, a Transmission Control Protocol (TCP) connection or a Simple Network Management Protocol (SNMP) get request (to retrieve the bandwidth usage), for instance. The first two resources R1 and R2 return responses immediately since these delivery nodes are running without any problem. However, R3 and R4 take more time to response due to network congestion.
The time interval between two consecutive monitoring is configured to be much greater than the timeout for the request, as shown in FIG. 1. In this way, before the next monitoring process starts, the TM has received all the responses, being either success, failure or timeout, from the delivery nodes. This monitoring mechanism works very well.
However, this monitoring process is not suitable for providing high availability of CDNs.